{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Hello Mnist"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1. load dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-27T08:34:49.336810Z",
     "start_time": "2020-08-27T08:34:47.008038Z"
    }
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "from keras.datasets import mnist\n",
    "(img_train, lab_train), (img_test, lab_test) = mnist.load_data(\n",
    "    r'D:/Python/workspace/jupyter/data/mnist.npz')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-27T08:34:49.348780Z",
     "start_time": "2020-08-27T08:34:49.338805Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(60000, 28, 28)\n",
      "(10000, 28, 28)\n"
     ]
    }
   ],
   "source": [
    "print(img_train.shape)\n",
    "print(img_test.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.1 show the image"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-27T08:34:49.900330Z",
     "start_time": "2020-08-27T08:34:49.353766Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "plt.imshow(img_train[4], cmap=plt.cm.binary)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.2 reshape the dataset"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-27T08:34:50.240394Z",
     "start_time": "2020-08-27T08:34:49.902299Z"
    }
   },
   "outputs": [],
   "source": [
    "img_train = img_train.reshape((-1, 28*28)).astype('float32')/255\n",
    "img_test = img_test.reshape((-1, 28*28)).astype('float32')/255"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-27T08:34:50.247376Z",
     "start_time": "2020-08-27T08:34:50.241391Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(784,)\n"
     ]
    }
   ],
   "source": [
    "print(img_train[4].shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.3 initialise the labels"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-27T08:34:50.404954Z",
     "start_time": "2020-08-27T08:34:50.249370Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[5 0]\n",
      "[[0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]\n",
      " [1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]\n"
     ]
    }
   ],
   "source": [
    "from keras.utils import to_categorical\n",
    "\n",
    "print(lab_train[:2])\n",
    "\n",
    "lab_train = to_categorical(lab_train)\n",
    "lab_test = to_categorical(lab_test)\n",
    "\n",
    "print(lab_train[:2])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2.Initialise Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-27T08:34:50.574501Z",
     "start_time": "2020-08-27T08:34:50.406949Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From d:\\programs\\anaconda3\\envs\\tf13-keras\\lib\\site-packages\\tensorflow\\python\\framework\\op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Colocations handled automatically by placer.\n",
      "Model: \"sequential_1\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "dense_1 (Dense)              (None, 512)               401920    \n",
      "_________________________________________________________________\n",
      "dense_2 (Dense)              (None, 10)                5130      \n",
      "=================================================================\n",
      "Total params: 407,050\n",
      "Trainable params: 407,050\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "from keras import models, layers\n",
    "network = models.Sequential()\n",
    "network.add(layers.Dense(512, activation='relu', input_shape=(28*28,)))\n",
    "network.add(layers.Dense(10, activation='softmax'))\n",
    "\n",
    "network.compile(optimizer='rmsprop',\n",
    "                loss='categorical_crossentropy',\n",
    "                metrics=['accuracy'])\n",
    "\n",
    "network.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3.train"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-27T08:35:13.064359Z",
     "start_time": "2020-08-27T08:34:50.577494Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From d:\\programs\\anaconda3\\envs\\tf13-keras\\lib\\site-packages\\tensorflow\\python\\ops\\math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use tf.cast instead.\n",
      "Epoch 1/10\n",
      "60000/60000 [==============================] - 4s 65us/step - loss: 0.2542 - acc: 0.9261\n",
      "Epoch 2/10\n",
      "60000/60000 [==============================] - 2s 32us/step - loss: 0.1054 - acc: 0.9698\n",
      "Epoch 3/10\n",
      "60000/60000 [==============================] - 2s 32us/step - loss: 0.0692 - acc: 0.9791\n",
      "Epoch 4/10\n",
      "60000/60000 [==============================] - 2s 38us/step - loss: 0.0503 - acc: 0.9851\n",
      "Epoch 5/10\n",
      "60000/60000 [==============================] - 2s 35us/step - loss: 0.0373 - acc: 0.9890\n",
      "Epoch 6/10\n",
      "60000/60000 [==============================] - 2s 35us/step - loss: 0.0288 - acc: 0.9913\n",
      "Epoch 7/10\n",
      "60000/60000 [==============================] - 2s 34us/step - loss: 0.0225 - acc: 0.9936\n",
      "Epoch 8/10\n",
      "60000/60000 [==============================] - 2s 33us/step - loss: 0.0169 - acc: 0.9947\n",
      "Epoch 9/10\n",
      "60000/60000 [==============================] - 2s 33us/step - loss: 0.0135 - acc: 0.9961\n",
      "Epoch 10/10\n",
      "60000/60000 [==============================] - 2s 35us/step - loss: 0.0100 - acc: 0.9970\n"
     ]
    }
   ],
   "source": [
    "history0 = network.fit(img_train, lab_train, epochs=10, batch_size=128)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-27T08:35:13.442349Z",
     "start_time": "2020-08-27T08:35:13.066356Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "10000/10000 [==============================] - 0s 37us/step\n",
      "acc:0.983\n"
     ]
    }
   ],
   "source": [
    "loss_test, acc_test = network.evaluate(img_test, lab_test)\n",
    "print('acc:{:.3f}'.format(acc_test))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 4. show the result"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-27T08:35:51.463673Z",
     "start_time": "2020-08-27T08:35:51.459691Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "dict_keys(['loss', 'acc'])\n"
     ]
    }
   ],
   "source": [
    "dict_history0 = history0.history\n",
    "print(dict_history0.keys())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 5. build a large network"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-27T08:36:02.877160Z",
     "start_time": "2020-08-27T08:36:02.810330Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential_3\"\n",
      "_________________________________________________________________\n",
      "Layer (type)                 Output Shape              Param #   \n",
      "=================================================================\n",
      "dense_5 (Dense)              (None, 1024)              803840    \n",
      "_________________________________________________________________\n",
      "dense_6 (Dense)              (None, 10)                10250     \n",
      "=================================================================\n",
      "Total params: 814,090\n",
      "Trainable params: 814,090\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "network = models.Sequential()\n",
    "network.add(layers.Dense(1024, activation='relu', input_shape=(28*28,)))\n",
    "network.add(layers.Dense(10, activation='softmax'))\n",
    "\n",
    "network.compile(optimizer='rmsprop',\n",
    "                loss='categorical_crossentropy',\n",
    "                metrics=['accuracy'])\n",
    "\n",
    "network.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-27T08:36:30.919645Z",
     "start_time": "2020-08-27T08:36:04.611513Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/10\n",
      "60000/60000 [==============================] - 3s 52us/step - loss: 0.2339 - acc: 0.9303\n",
      "Epoch 2/10\n",
      "60000/60000 [==============================] - 3s 43us/step - loss: 0.0877 - acc: 0.9738\n",
      "Epoch 3/10\n",
      "60000/60000 [==============================] - 3s 43us/step - loss: 0.0574 - acc: 0.9822\n",
      "Epoch 4/10\n",
      "60000/60000 [==============================] - 3s 42us/step - loss: 0.0405 - acc: 0.9875\n",
      "Epoch 5/10\n",
      "60000/60000 [==============================] - 3s 42us/step - loss: 0.0297 - acc: 0.9911\n",
      "Epoch 6/10\n",
      "60000/60000 [==============================] - 3s 43us/step - loss: 0.0212 - acc: 0.9935\n",
      "Epoch 7/10\n",
      "60000/60000 [==============================] - 3s 43us/step - loss: 0.0160 - acc: 0.9953\n",
      "Epoch 8/10\n",
      "60000/60000 [==============================] - 3s 43us/step - loss: 0.0119 - acc: 0.9964\n",
      "Epoch 9/10\n",
      "60000/60000 [==============================] - 3s 42us/step - loss: 0.0097 - acc: 0.9970\n",
      "Epoch 10/10\n",
      "60000/60000 [==============================] - 3s 42us/step - loss: 0.0070 - acc: 0.9980\n"
     ]
    }
   ],
   "source": [
    "history1 = network.fit(img_train, lab_train, epochs=10, batch_size=128)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-27T08:36:32.515379Z",
     "start_time": "2020-08-27T08:36:32.511415Z"
    }
   },
   "outputs": [],
   "source": [
    "dict_history1 = history1.history"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-27T08:40:32.159781Z",
     "start_time": "2020-08-27T08:40:31.496304Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "10000/10000 [==============================] - 1s 65us/step\n",
      "acc:0.983\n"
     ]
    }
   ],
   "source": [
    "loss_test, acc_test = network.evaluate(img_test, lab_test)\n",
    "print('acc:{:.3f}'.format(acc_test))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 6. show the difference between tow models"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-08-27T08:36:33.734144Z",
     "start_time": "2020-08-27T08:36:33.466834Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x360 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "x = range(1, 11)\n",
    "\n",
    "plt.figure('difference',figsize=(20, 5))\n",
    "plt.subplot(1,2,1)\n",
    "plt.xlabel('epochs')\n",
    "plt.ylabel('loss')\n",
    "plt.plot(x, dict_history0['loss'], label='origin')\n",
    "plt.plot(x, dict_history1['loss'], label='large')\n",
    "plt.legend()\n",
    "\n",
    "plt.subplot(1,2,2)\n",
    "plt.xlabel('epochs')\n",
    "plt.ylabel('acc')\n",
    "plt.plot(x, dict_history0['acc'], label='origin')\n",
    "plt.plot(x, dict_history1['acc'], label='large')\n",
    "\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
